package beer.xz.beer.device.comm.test

import beer.xz.beer.device.comm.protocol.BeerProtocolImpl

/**
 * 协议测试主程序
 * 可以直接运行此文件来测试协议实现
 */
fun main() {
    println("啤酒机协议测试")
    println("==============")
    
    try {
        // 生成测试数据
        val testData = BeerProtocolTest.generateTestPacket()
        println("生成测试数据: ${testData.size} 字节")
        
        // 打印测试数据的十六进制表示
        println("测试数据: ${testData.joinToString("") { "%02X ".format(it) }}")
        
        // 创建协议实现
        val protocol = BeerProtocolImpl()
        
        // 解析数据
        val result = protocol.decodeData(testData)
        
        if (result != null) {
            println("解析成功:")
            println("温度: ${result.temperature}°C")
            println("酒瓶重量: ${result.beerBottleWeight}kg")
            println("出酒量: ${result.outputBeerWeight}kg")
            println("罐装酒瓶压力: ${result.bottlePressure}kg")
            println("二氧化碳压强: ${result.co2Pressure}kg")
            println("电机行程量: ${result.motorPosition}")
            println("流量计数: ${result.flowCount}")
            println("运行时间: ${result.runningTimeMs}ms")
            println("设备ID: ${result.deviceId}")
            println("软件版本: ${result.softwareVersion}")
            println("硬件版本: ${result.hardwareVersion}")
            println("运行标志位: ${result.runningFlag}")
            println("设备状态: ${result.getStatusDescription()}")
        } else {
            println("解析失败")
        }
    } catch (e: Exception) {
        println("测试异常: ${e.message}")
        e.printStackTrace()
    }
    
    println("测试完成")
}
